type ServerOptions {
    common: CommonOptions
};

type ClientOptions {
    common: CommonOptions
};

type CommonOptions {
    log:    LogOptions,
    limits: LimitOptions
};
export const @default: CommonOptions := {};

type LogOptions {
    enabled: Bool
};
export const @default: LogOptions := { enabled: Yes };

type LimitOptions {
    send-timeout:      Number,
    recv-timeout:      Number,
    recv-interval:     Number,
    recv-max-obj-size: Number
};
export const @default: LimitOptions := {
    send-timeout:      10000,
    recv-timeout:      0,
    recv-interval:     100,
    recv-max-obj-size: 33554432
};


